package erp_models

import (
	"time"
	"xiehui-service/app/models"
)

// 订单任务
type OrderTask struct {
	models.ID
	LineNumber             string     `gorm:"column:line_number" json:"line_number"`                           //绑定生产线编码
	MixingStationId        int64      `gorm:"column:mixing_station_id" json:"mixing_station_id"`               //拌站ID
	UnionNo                string     `gorm:"column:union_no" json:"union_no"`                                 //统一编号
	TaskNo                 string     `gorm:"column:task_no" json:"task_no"`                                   //任务单号
	ContractId             int64      `gorm:"column:contract_id" json:"contract_id"`                           //合同ID
	ContractNo             string     `gorm:"column:contract_no" json:"contract_no"`                           //合同单号
	CustomerId             int64      `gorm:"column:customer_id" json:"customer_id"`                           //客户ID
	CustomerName           string     `gorm:"column:customer_name" json:"customer_name"`                       //客户名称
	ProjectId              int64      `gorm:"column:project_id" json:"project_id"`                             //项目ID
	ProjectName            string     `gorm:"column:project_name" json:"project_name"`                         //项目名称
	ProjectSubId           int64      `gorm:"column:project_sub_id" json:"project_sub_id"`                     //工程ID
	ProjectSubName         string     `gorm:"column:project_sub_name" json:"project_sub_name"`                 //工程名称
	BuildId                int64      `gorm:"column:build_id" json:"build_id"`                                 //施工单位ID
	BuildName              string     `gorm:"column:build_name" json:"build_name"`                             //施工单位名称
	ShippingAddressId      int        `gorm:"column:shipping_address_id" json:"shipping_address_id"`           //工程地址id
	ShippingAddress        string     `gorm:"column:shipping_address" json:"shipping_address"`                 //收货地址
	ShippingContacts       string     `gorm:"column:shipping_contacts" json:"shipping_contacts"`               //收获联系人
	ShippingMobile         string     `gorm:"column:shipping_mobile" json:"shipping_mobile"`                   //收获联系电话
	HaulDistance           string     `gorm:"column:haul_distance" json:"haul_distance"`                       //运距
	BuildPosition          string     `gorm:"column:build_position" json:"build_position"`                     //浇筑部位
	BuildMethod            string     `gorm:"column:build_method" json:"build_method"`                         //浇筑方式
	BuildDevice            string     `gorm:"column:build_device" json:"build_device"`                         //浇筑设备
	PumpModel              string     `gorm:"column:pump_model" json:"pump_model"`                             //泵送型号
	Slumps                 string     `gorm:"column:slumps" json:"slumps"`                                     //坍落度
	DistributionCategoryId int8       `gorm:"column:distribution_category_id" json:"distribution_category_id"` //配送类型
	ConcreteCategoryId     int64      `gorm:"column:concrete_category_id" json:"concrete_category_id"`         //砼品种ID
	ConcreteCategory       string     `gorm:"column:concrete_category" json:"concrete_category"`               //砼品种名称
	Strength               string     `gorm:"column:strength" json:"strength"`                                 //强度等级
	Seepage                string     `gorm:"column:seepage" json:"seepage"`                                   //抗渗等级
	SpecialRequirements    string     `gorm:"column:special_requirements" json:"special_requirements"`         //特殊要求
	AdmixtureSpecification string     `gorm:"column:admixture_specification" json:"admixture_specification"`   //渗料规格
	AdditiveSpecification  string     `gorm:"column:additive_specification" json:"additive_specification"`     //外加剂规格
	CementSpecification    string     `gorm:"column:cement_specification" json:"cement_specification"`         //水泥类型
	StoneSpecification     string     `gorm:"column:stone_specification" json:"stone_specification"`           //石子规格
	DeliveryQuantity       float64    `gorm:"column:delivery_quantity" json:"delivery_quantity"`               //发货方量（累计）
	ConfirmQuantity        float64    `gorm:"column:confirm_quantity" json:"confirm_quantity"`                 //签收方量（累计）
	RemainQuantity         float64    `gorm:"column:remain_quantity" json:"remain_quantity"`                   //返料方量（累计）
	ProductionQuantity     float64    `gorm:"column:production_quantity" json:"production_quantity"`           //生产方量（累计）
	ConcreteQuantity       float64    `gorm:"column:concrete_quantity" json:"concrete_quantity"`               //砼生产方量（累计）
	MortarQuantity         float64    `gorm:"column:mortar_quantity" json:"mortar_quantity"`                   //砂浆生产方量（累计）
	LimitQuantity          float64    `gorm:"column:limit_quantity" json:"limit_quantity"`                     //限载方量
	PlanQuantity           float64    `gorm:"column:plan_quantity" json:"plan_quantity"`                       //计划方量
	PauseQuantity          float64    `gorm:"column:pause_quantity" json:"pause_quantity"`                     //暂停方量
	FirstPlanTime          *time.Time `gorm:"column:first_plan_time" json:"first_plan_time,omitempty"`         //第一次计划时间
	PlanTime               *time.Time `gorm:"column:plan_time" json:"plan_time"`                               //计划时间
	LastDispatchTime       *time.Time `gorm:"column:last_dispatch_time" json:"last_dispatch_time"`             //最近排车时间
	MixingTime             int        `gorm:"column:mixing_time" json:"mixing_time"`                           //搅拌时间，单位秒
	CountVehicle           int8       `gorm:"column:count_vehicle" json:"count_vehicle"`                       //累计车次
	TaskSource             string     `gorm:"column:task_source" json:"task_source"`                           //任务来源
	TaskType               string     `gorm:"column:task_type" json:"task_type"`                               //任务类型;局内-局外
	TaskStatus             int8       `gorm:"column:task_status" json:"task_status"`                           //任务状态
	VerifyStatus           int8       `gorm:"column:verify_status" json:"verify_status"`                       //审批状态
	InstanceCode           string     `gorm:"column:instance_code" json:"instance_code"`                       //飞书审批实例
	VerifyBy               int        `gorm:"column:verify_by" json:"verify_by"`                               //审批人
	ThTaskId               string     `gorm:"column:th_task_id" json:"th_task_id"`                             //关联三方任务ID
	ThContractId           int64      `gorm:"column:th_contract_id" json:"th_contract_id"`                     //关联三方合同ID
	TglTaskId              int        `gorm:"column:tgl_task_id" json:"tgl_task_id"`                           //关联TGL任务ID
	MortarMixtureId        int        `gorm:"column:mortar_mixture_id" json:"mortar_mixture_id"`               //砂浆配比ID（预留）
	WorkMixtureId          int        `gorm:"column:work_mixture_id" json:"work_mixture_id"`                   //施工配比ID（预留）
	MortarMixtureNo        string     `gorm:"column:mortar_mixture_no" json:"mortar_mixture_no"`               //砂浆配比编号
	WorkMixtureNo          string     `gorm:"column:work_mixture_no" json:"work_mixture_no"`                   //施工配比编号
	SalesSearchKey         string     `gorm:"column:sales_search_key" json:"sales_search_key"`                 //销售模糊搜索索引（预留）
	SalesSearchInitial     string     `gorm:"column:sales_search_initial" json:"sales_search_initial"`         //销售模糊搜索字母（预留）
	MixtureSearchKey       string     `gorm:"column:mixture_search_key" json:"mixture_search_key"`             //配比模糊搜索索引（预留）
	BindMixerNo            string     `gorm:"column:bind_mixer_no" json:"bind_mixer_no"`                       //绑定拌台（预留）;举例:1,2,3,4,5,6,7,8,9
	Remark                 string     `gorm:"column:remark" json:"remark"`                                     //备注
	TenantId               string     `gorm:"column:tenant_id" json:"tenant_id"`                               //租户号
	Revision               int8       `gorm:"column:revision" json:"revision"`                                 //乐观锁
	MaxPlateQuantity       string     `gorm:"column:max_plate_quantity" json:"max_plate_quantity"`             //最大盘方量
	AutoDispatch           int8       `gorm:"column:auto_dispatch" json:"auto_dispatch"`                       //是否开启自动调度0-否 1是
	AutoRatio              int        `gorm:"column:auto_ratio" json:"auto_ratio"`                             //自动调度百分比
	CreatedBy              int        `gorm:"column:created_by" json:"created_by"`                             //创建人
	UpdatedBy              int        `gorm:"column:updated_by" json:"updated_by"`                             //更新人
	DeletedBy              int        `gorm:"column:deleted_by" json:"deleted_by"`                             //删除人
	models.Timestamps
	models.SoftDeletes
}

// TableName 解决gorm表明映射
func (OrderTask) TableName() string {
	return "order_task"
}
